package chapter07.s02bytestream.p01inputstream;

import java.io.FileInputStream;

/**
 * Java中IO流分为：字节流、字符流
 * 字节流 ： 操作字节的输入输出 如 01011010
 * 字符流 ： 操作字符的输入输出 如 hello
 * 输入流 InputStream ：从源设备输入到程序 从源读取数据
 * 输出流 OutputStream：程序输出到目标设备 向目标写数据
 *
 * FileInputStream
 * 是InputStream的子类，它是操作文件的字节输入流，专门用于读取文件中的数据。
 * 本例实现字节流对文件数据的读取
 */
public class Example08 {
    public static void main(String[] args) throws Exception {
        // 创建一个文件字节输入流
        FileInputStream in = new FileInputStream("src/chapter07/test.txt");
        int b = 0;           // 定义一个int类型的变量b，记住每次读取的一个字节
        while (true) {
            b = in.read(); // 变量b记住读取的一个字节
            if (b == -1) { // 如果读取的字节为-1，跳出while循环
                break;
            }
            System.out.println(b); // 否则将b写出
        }

        // 关闭流，防止资源泄露
        in.close();
    }
}
